package com.zbiti.anvil.basic.admin.gateway.selenium.util;

import org.openqa.selenium.WebElement;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;

/**
 * 前端页面断言帮助类
 *
 * @author Fanyc
 * @date 2021-05-14 14:23
 */
public class UiAssertHelper {

    /**
     * 断言分页总数和页码
     *
     * @param pagination 分页对象
     * @param total      总行数
     * @param pages      页数
     */
    public static void assertPageTotalAndPages(WebElement pagination, int total, int pages) {
        // 校验总数和页码
        assertEquals(String.format("共 %d 条", total), ElementUtils.cssSelector(pagination, "span[class='el-pagination__total']").getText());
        assertEquals(pages, ElementUtils.cssSelectorAll(pagination, "li[class~='number']").size());
    }

    /**
     * 验证表格一列数据的正确性
     *
     * @param table    Table元素
     * @param colIndex 列号，从0开始
     * @param values   一列的值
     */
    public static void assertTableColumnResult(WebElement table, final int colIndex, String[] values) {
        // 获取所有行
        List<WebElement> trs = ElementUtils.elTableTrs(table);
        // 检查列对应值
        for (int i = 0; i < values.length; i++) {
            assertEquals(values[i], ElementUtils.xpath(trs.get(i), String.format("td[%d]/div", colIndex + 1)).getText());
        }
    }
}
